1 /*
2   D bindings for CUDA.
3   Authors:    Prasun Anand
4   Copyright:  Copyright (c) 2017, Prasun Anand. All rights reserved.
5   License:    BSD 3-Clause License
6 */
7 
8 module cuda_d.cuComplex;
9 
10 import cuda_d.vector_types;
11 
12 extern (C):
13 
14 alias cuFloatComplex = float2_;
15 
16 float cuCrealf (cuFloatComplex x);
17 
18 float cuCimagf (cuFloatComplex x);
19 
20 cuFloatComplex make_cuFloatComplex (float r, float i);
21 
22 cuFloatComplex cuConjf (cuFloatComplex x);
23 cuFloatComplex cuCaddf (cuFloatComplex x, cuFloatComplex y);
24 
25 cuFloatComplex cuCsubf (cuFloatComplex x, cuFloatComplex y);
26 
27 cuFloatComplex cuCmulf (cuFloatComplex x, cuFloatComplex y);
28 
29 cuFloatComplex cuCdivf (cuFloatComplex x, cuFloatComplex y);
30 
31 float cuCabsf (cuFloatComplex x);
32 
33 alias cuDoubleComplex = double2_;
34 
35 double cuCreal (cuDoubleComplex x);
36 
37 double cuCimag (cuDoubleComplex x);
38 
39 cuDoubleComplex make_cuDoubleComplex (double r, double i);
40 
41 cuDoubleComplex cuConj (cuDoubleComplex x);
42 
43 cuDoubleComplex cuCadd (cuDoubleComplex x, cuDoubleComplex y);
44 
45 cuDoubleComplex cuCsub (cuDoubleComplex x, cuDoubleComplex y);
46 
47 cuDoubleComplex cuCmul (cuDoubleComplex x, cuDoubleComplex y);
48 
49 cuDoubleComplex cuCdiv (cuDoubleComplex x, cuDoubleComplex y);
50 
51 double cuCabs (cuDoubleComplex x);
52 
53 alias cuComplex = float2_;
54 
55 cuComplex make_cuComplex (float x, float y);
56 
57 cuDoubleComplex cuComplexFloatToDouble (cuFloatComplex c);
58 
59 cuFloatComplex cuComplexDoubleToFloat (cuDoubleComplex c);